Modul 4 Praktikum PSD 2023/2024 Semester Ganjil

Kembali ke Pengantar Sains Data

Versi file .R dari modul ini bisa diunduh: Modul 4 .R

Hypothesis Testing

  1. Definisi Hipotesis

  2. Definisi tingkat signifikansi alpha

  3. Penentuan statistik uji

  4. Daerah kritis

  5. Pengambilan keputusan dan interpretasi

a) uji mean 1 sampel

ingat asumsi

  • data berdistribusi normal
  • antar observasi saling bebas

kasus uji 2 arah

  • \(H_0 : \mu = \mu_0\)
  • \(H_1 : \mu \neq \mu_0\)

\(\mu_0\) itu ditentukan peneliti, tergantung pengujian yg ingin dilakukan

x <- rnorm(20)
t.test(x,
       mu = 0.5,
       alternative = "two.sided")

    One Sample t-test

data:  x
t = -1.5162, df = 19, p-value = 0.1459
alternative hypothesis: true mean is not equal to 0.5
95 percent confidence interval:
 -0.2064717  0.6129114
sample estimates:
mean of x 
0.2032198 

Untuk kasus ini \(\mu_0 = 0.5\)

Pengambilan keputusan: statistik uji, CI, p-value

statistik uji

t tabel dengan \(df = n-1 = 20-1 = 19\)

qt(0.025, 19)
[1] -2.093024
qt(0.975, 19)
[1] 2.093024

bandingkan t tabel dan statistik uji t

p-value manual

2*(pt(-2.5414, 19)) #Angka -2,5414 ini tergantung dari nilai t yang didapatkan pada t.test sebelumnya
[1] 0.01991894
2*(1-pt(2.5414, 19)) #Artinya bisa jadi nilai t yang didapatkan itu bukan -2,5414 tinggal menyesuaikan saja
[1] 0.01991894

CI : kalo \(\mu_0\) ada di dalam CI ya H0 diterima (perhitungan CI ga diajarin disini ya)

viz daerah penolakan

x_grafik <- seq(-4, 4, length = 100)
x_daerah_penolakan <- seq(-4, -2.5414, length = 100)
y_daerah_penolakan <- dt(x_daerah_penolakan, df = 19)
x_daerah_penolakan2 <- seq(2.5414, 4, length = 100)
y_daerah_penolakan2 <- dt(x_daerah_penolakan2, df = 19)

plot(x_grafik,
     dt(x_grafik, df = 19),
     type = 'l',
     main = "Luas Daerah Penolakan",
     xlab = "x",
     ylab = "Pr(X=x)",
     lwd = 2)
polygon(c(-4,x_daerah_penolakan, -2.5414),
        c(0, y_daerah_penolakan, 0),
        col = "red")
polygon(c(2.5414,x_daerah_penolakan2, 4),
        c(0, y_daerah_penolakan2, 0),
        col = "red")

kasus uji 1 arah (lower tailed test)

  • \(H_0 : \mu >= 0.3\)

  • \(H_1 : \mu < 0.3\)

Ingin diuji apakah mean populasi >= 0.3 atau tidak. Ingat saja untuk lower tailed test perhatikan tanda pada H1 nya harus “<”. Jadi kalo ketemu H1 tandanya “<” maka udah pasti lower tailed test.

t.test(x,
       mu = 0.3,
       alternative = "less")

    One Sample t-test

data:  x
t = -0.49443, df = 19, p-value = 0.3133
alternative hypothesis: true mean is less than 0.3
95 percent confidence interval:
      -Inf 0.5416828
sample estimates:
mean of x 
0.2032198 

Sebelumnya perhatikan bahwa apabila nilai t yang didapatkan bernilai positif Maka uji lower tailed test tidak dapat dilakukan. Harus diganti dengan uji upper tailed test

Sebaliknya, jika nilai t yang didapatkan negatif, maka uji lower tailed test dapat digunakan. Ingat saja, untuk lower tailed test, nilai t yang didapatkan harus negatif

t tabel dengan df = n-1 = 20-1 = 19

qt(0.05, 19)
[1] -1.729133
qt(0.95, 19)
[1] 1.729133

bandingkan t tabel dan statistik uji t

p-value manual

pt(-1.5175, 19) #Angka -1,5175 ini tergantung dari nilai t yang didapatkan pada t.test sebelumnya
[1] 0.07280191
1-pt(1.5175, 19) #Artinya bisa jadi nilai t yang didapatkan itu bukan -1,5175 tinggal menyesuaikan saja
[1] 0.07280191

viz daerah penolakan

x_grafik <- seq(-4, 4, length = 100)
x_daerah_penolakan <- seq(-4, -1.5175, length = 100)
y_daerah_penolakan <- dt(x_daerah_penolakan, df = 19)

plot(x_grafik,
     dt(x_grafik, df = 19),
     type = 'l',
     main = "Luas Daerah Penolakan",
     xlab = "x",
     ylab = "Pr(X=x)",
     lwd = 2)
polygon(c(-4,x_daerah_penolakan, -1.5175),
        c(0, y_daerah_penolakan, 0),
        col = "red")

kasus uji 1 arah (upper tailed test)

  • \(H_0 : \mu <= 0.3\)

  • \(H_1 : \mu > 0.3\)

Ingin diuji apakah mean populasi <= 0.3 atau tidak Ingat saja untuk upper tailed test perhatikan tanda pada \(H_1\) nya harus “>” Jadi kalo ketemu \(H_1\) tandanya “>” maka udah pasti upper tailed test.

t.test(x,
       mu = 0.3,
       alternative = "greater")

    One Sample t-test

data:  x
t = -0.49443, df = 19, p-value = 0.6867
alternative hypothesis: true mean is greater than 0.3
95 percent confidence interval:
 -0.1352431        Inf
sample estimates:
mean of x 
0.2032198 

Sebelumnya perhatikan bahwa apabila nilai t yang didapatkan bernilai negatif. Maka uji upper tailed test tidak dapat dilakukan.

Harus diganti dengan uji lower tailed test. Sebaliknya, jika nilai t yang didapatkan positif, maka uji upper tailed test dapat digunakan. Ingat saja, untuk upper tailed test, nilai t yang didapatkan harus positif

x_grafik <- seq(-4, 4, length = 100)
x_daerah_penolakan <- seq(1.5175, 4, length = 100)
y_daerah_penolakan <- dt(x_daerah_penolakan, df = 19)

plot(x_grafik,
     dt(x_grafik, df = 19),
     type = 'l',
     main = "Luas Daerah Penolakan",
     xlab = "x",
     ylab = "Pr(X=x)",
     lwd = 2)
polygon(c(1.5175,x_daerah_penolakan, 4),
        c(0, y_daerah_penolakan, 0),
        col = "red")

b) uji beda mean 2 populasi

x <- rnorm(20, mean = 5)
y <- rnorm(20, mean = 2)

\(H0 : \mu_1 - \mu_2 = \mu_0\)

t.test(x, y, mu = 0, var.equal = TRUE, alternative = "two.sided") #kasus asumsi variansi sama

    Two Sample t-test

data:  x and y
t = 12.106, df = 38, p-value = 1.305e-14
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 2.694578 3.776700
sample estimates:
mean of x mean of y 
 5.170262  1.934623 
t.test(x, y, mu = 0, var.equal = FALSE, alternative = "two.sided") #kasus asumsi variansi tidak sama

    Welch Two Sample t-test

data:  x and y
t = 12.106, df = 32.83, p-value = 1.189e-13
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 2.691766 3.779512
sample estimates:
mean of x mean of y 
 5.170262  1.934623 

uji berpasangan

  • \(H0 : \mu_1 >= \mu_2\)

  • \(H1 : \mu_1 < \mu_2\)

t.test(x, y, mu = 0, var.equal = TRUE, alternative = "less", paired = TRUE) 

    Paired t-test

data:  x and y
t = 11.642, df = 19, p-value = 1
alternative hypothesis: true mean difference is less than 0
95 percent confidence interval:
     -Inf 3.716206
sample estimates:
mean difference 
       3.235639 

uji t 2 populasi per kategori

nilai_UTS <- c(90, 75, 100, 65, 70, 70, 60, 55)
matkul <- c(rep("PSD", 4), rep("MD", 4))
df <- data.frame(nilai_UTS, matkul)
  • \(H_0 : \mu_{MD} >= \mu_{PSD}\)

  • \(H_1 : \mu_{MD} < \mu_{PSD}\)

Catatan: MD itu sama aja kayak Kalkulus (dulu Kalkulus namanya MD)

t.test(nilai_UTS ~ matkul,
       data = df,
       subset = matkul %in% c("PSD", "MD"),
       alternative = "less")

    Welch Two Sample t-test

data:  nilai_UTS by matkul
t = -2.1726, df = 4.3248, p-value = 0.0452
alternative hypothesis: true difference in means between group MD and group PSD is less than 0
95 percent confidence interval:
       -Inf -0.7417708
sample estimates:
 mean in group MD mean in group PSD 
            63.75             82.50 

kasus: setelah UTS MD, anak2 di kelas jadi rajin belajar buat UTS PSD

setelah nilai UTS PSD keluar, apakah rajin belajar tadi negefek ke UTS PSD?

karena ini kasus sebelum - sesudah, gunakan uji berpasangan

t.test(nilai_UTS ~ matkul,
       data = df,
       subset = matkul %in% c("PSD", "MD"),
       alternative = "less")

    Welch Two Sample t-test

data:  nilai_UTS by matkul
t = -2.1726, df = 4.3248, p-value = 0.0452
alternative hypothesis: true difference in means between group MD and group PSD is less than 0
95 percent confidence interval:
       -Inf -0.7417708
sample estimates:
 mean in group MD mean in group PSD 
            63.75             82.50 
#       paired = TRUE)

ternyata pengaruh karena nilai UTS PSD jadi naik pesan moral: ayo rajin belajar :p (zany face)

c) ANOVA

uji mean 2 populasi \(\longrightarrow\) uji t

kalo lebih dari 2 populasi gimana? jadinya anova

jadi anova adalah uji t untuk \(>\) 2 populasi

\(H0: \mu_{MD} = \mu_{PSD} = \mu_{LDH}\) (mean sama, artinya tidak ada efek perbedaan matkul terhadap nilai uts)

df2 <- data.frame(nilai_UTS = c(100, 90, 77, 85), matkul = c(rep("LDH",4)))
df <- rbind(df, df2)

anova(lm(nilai_UTS ~ matkul, data = df))
Analysis of Variance Table

Response: nilai_UTS
          Df Sum Sq Mean Sq F value  Pr(>F)  
matkul     2 1293.2  646.58  4.9663 0.03521 *
Residuals  9 1171.8  130.19                  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1